A Specification Logic for Termination Reasoning

نویسندگان

  • Ton-Chanh Le
  • Cristian Gherghina
  • Aquinas Hobor
چکیده

We propose a logical framework for specifying and proving assertions about program termination. Although termination of programs has been well studied, it is usually added as an external component to the specification logic. Here we propose to integrate termination requirements directly into our specification logic, as temporal constraints for each phase of every method. Our temporal constraints can specify a strict decrease in a bounded measure for termination proofs and the unreachability of method exit for non-termination proofs. Furthermore, our termination-infused logic can leverage richer specification logics to help conduct more complex termination reasoning for programs with structural specification, heap manipulation, exception handling, and multiple phases. We expect our termination reasoning to directly benefit from any future improvements to our specification mechanism because it is fully integrated into our specification logic. Through an experimental evaluation, we report on the usability and practicality of a verification system, based on separation logic, that has been enhanced with our termination constraints.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

An Integrated Logic for Termination and Non-Termination Reasoning

We propose a logical framework for specifying and proving assertions about program termination and non-termination. Although program termination has been well studied, it is usually added as an external component to a specification logic. Here we propose to integrate termination requirements directly into our specification logic, as temporal constraints for each execution phase of every method....

متن کامل

Non-termination of Dalvik bytecode via compilation to CLP

We present a set of rules for compiling a Dalvik bytecode program into a logic program with array constraints. Non-termination of the resulting program entails that of the original one, hence the techniques we have presented before for proving non-termination of constraint logic programs can be used for proving non-termination of Dalvik programs. 1998 ACM Subject Classification D.2.4 Software/P...

متن کامل

Monad-Independent Dynamic Logic in Has Casl

Monads have been recognized by Moggi as an elegant device for dealing with stateful computation in functional programming languages. In previous work, we have introduced a Hoare calculus for partial correctness of monadic programs. All this has been done in an entirely monad-independent way. Here, we extend this to a monad-independent dynamic logic (assuming a moderate amount of additional infr...

متن کامل

Partial Recursive Functions in Higher-Order Logic

Based on inductive definitions, we develop an automated tool for defining partial recursive functions in Higher-Order Logic and providing appropriate reasoning tools for them. Our method expresses termination in a uniform manner and includes a very general form of pattern matching, where patterns can be arbitrary expressions. Termination proofs can be deferred, restricted to subsets of argument...

متن کامل

Reasoning About Method Calls in JML Specifications

The Java Modeling Language, JML, is an interface specification language that uses side-effect free Java expressions to describe program behavior. In particular, JML specifications can contain calls to side-effect free methods. To verify programs w.r.t. JML specifications, JML expressions have to be encoded in a program logic. This encoding is non-trivial for method calls. In this paper, we illu...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012